序言
json在不同的开发语言中被越来越多的应用,大多数应用在接口。但是也会有一些问题产生。下面就是我在开发过程中遇到的两个关于json的问题,和大家分享一下。

一、在我们平常遇到的json格式正规的应该是下面这种:


    [{"data":{"hello":"1222"},"type":"12349999","date":"2014-10-30 17:6:9","user":"123","time_stamp":1351587969902}, {"data":{"hello":"world"},"type":"777","date":"2011-10-30 17:12:53","user":"0000","time_stamp":1351588373519}]

但是有的时候我们会遇到不带双引号,例如下面的:

{result:133,total:154,Page:0,list:[{Prdh:"abcde"}]}

在php中用json_decode是无法解析这种不带双引号的,不规则的json格式。那我们只能把不正规变成正规,才能进行解析。利用下面代码就可以将json变成正规格式:

function json_decode_new($str, $m=false) {
  if(preg_match('/\w:/', $str))
    $str = preg_replace('/(\w+):/is', '"$1":', $str);
  return json_decode($str, $m);
}

主要是应用了一个正则表达式。
二、ie7浏览器对于json格式要求比较严格,如果json写的格式不规范就会报错,我遇到的问题是提示提示缺少标识符、字符串或数字。当时我的json格式是这个样写的

var jsonstr={'name':'ceshi','title':'555'}

在我们看来是没有错误的,但是在ie7下面不行,我们必须在最后加上逗号,变成下面这种:

var jsonstr={'name':'ceshi','title':'555',}

以上就是我遇到的两个json的问题了,希望对大家有帮助


yanbingyun1990
236 声望23 粉丝